#ifndef _LUA_F_BASE_H_
#define _LUA_F_BASE_H_

#ifdef __cplusplus
extern "C"{
#endif

#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
#include <cutils/def.h>

#define DSERR() do {\
		lua_pushnil(L); \
		lua_pushstring(L, strerror(errno)); \
		return 2; \
	} while (0)

#define RETERR(_e) do {\
		DBG("err: %s", (_e));\
		lua_pushnil(L); \
		lua_pushfstring(L, "%s: %s", strerror(errno), (_e)); \
		return 2;\
	} while (0)
    
#define LTABLE_ADD_CFUNC(L, index, name, func) \
    lua_pushcfunction(L, (func));\
    lua_setfield(L, (index)-1, (name));


void stack_dump(lua_State *L);
int call_lua_func(lua_State *L);

#ifdef __cplusplus
}
#endif

#endif
